{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "

Bryn Mawr College
\n", "CS 110: Introduction to Computing
\n", "Spring 2017

\n", "\n", "

Professor Douglas Blank

\n", "\n", "* General Information\n", "* Syllabus and Schedule\n", "* Text and Software\n", "* Course Policies\n", "* Reference Links" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# General Information\n", "\n", "* **Instructor** : Douglas Blank\n", "* **Office hours** : Mon, Tue, Wed, Thu 10am-11am\n", "* **E-Mail** : dblank@cs.brynmawr.edu \n", "* **Website** : http://cs.brynmawr.edu/cs110\n", "* **Lecture** : Tuesdays and Thursdays 12:55PM - 2:15PM\n", "* **Room** : Park 338\n", "* **Phone** : (610) 526-6501\n", "* **Open Labs** : Park Science Building, room 231 (not 274)\n", " * Tuesdays 2:15PM - 3:15PM\n", " * Thursdays 11:45AM - 12:45PM\n", "* **TA Hours** : ***TA sessions are in Park Science, room 231***\n", " * Monday: 6pm-8pm (Sophie, and Rose); 8pm-10pm (Hyunjung and Lizzie)\n", " * Tuesday: 6pm-8pm (My); 8pm-10pm (Eileen, Lizzie, and Marilyn)\n", " * Wednesday: 6pm-8pm (Mary and Kennedy); 8pm-10pm (Eileen and Rose)\n", " * Thursday: 6pm-8pm (Mary and Kennedy); 8pm-10pm (Hyunjung, Marjorie, and My)\n", " * Sunday: 6pm-8pm (Marilyn); 8pm-10pm (Marjorie and Sophie)\n", "* **Grades** : http://moodle.brynmawr.edu/\n", "* **Jupyter, login** : https://athena.brynmawr.edu/jupyter/" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Syllabus and Schedule\n", "\n", "**Course Description**: An introduction to the nature, subject matter and branches of computer science as an academic discipline, and the nature, development, coding, testing, documenting and analysis of the efficiency and limitations of algorithms. Also includes the social context of computing (risks, liabilities, intellectual property and infringement).\n", "\n", "This semester, we will be exploring the creative aspects of coding as a context for learning the above concepts. You will exercise your creativity by designing programs in a language called, __Processing__. Processing is a new language/environment built upon the programming language Java. Processing was created by artists, designers, and computer scientists to explore ideas of creative coding sing computer algorithms. We will also cover a variety of other topics, from bioinformatics to robotics. We will cover much of the entire text during this semester. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Schedule\n", "\n", "```\n", " 2017 \n", "\n", " January February March \n", "Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa\n", " 1 2 3 4 5 6 7 1 2 3 4 1 2 3 4\n", " 8 9 10 11 12 13 14 5 6 7 8 9 10 11 5 6 7 8 9 10 11\n", "15 16 17 18 19 20 21 12 13 14 15 16 17 18 12 13 14 15 16 17 18\n", "22 23 24 25 26 27 28 19 20 21 22 23 24 25 19 20 21 22 23 24 25\n", "29 30 31 26 27 28 26 27 28 29 30 31\n", "\n", " April May June \n", "Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa\n", " 1 1 2 3 4 5 6 1 2 3\n", " 2 3 4 5 6 7 8 7 8 9 10 11 12 13 4 5 6 7 8 9 10\n", " 9 10 11 12 13 14 15 14 15 16 17 18 19 20 11 12 13 14 15 16 17\n", "16 17 18 19 20 21 22 21 22 23 24 25 26 27 18 19 20 21 22 23 24\n", "23 24 25 26 27 28 29 28 29 30 31 25 26 27 28 29 30\n", "30\n", "```" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Week | Date    | Topic | Activity | Lab Assignment \n", "---- | ---- | ----- | ---------- | ----- \n", "1 | Jan 17 | Introduction | Read Chapter 1, [Video 1: Getting Started](https://www.youtube.com/watch?v=-qr3R20iBmc) | Lab1\n", " | Jan 19 | Drawing Sketches | Read Chapter 2 | \n", "2 | Jan 24 | **No class or lab today** | On your own | Lab2\n", " | Jan 26 | [Parameterized Drawing](Notes/Parameterized%20Drawing.ipynb). Programming concepts: variables, math, functions | Discuss Chapter 2 | \n", "3 | Jan 31 | [drawLeaf](Notes/drawLeaf.ipynb), and Pair Programming Activity | Discuss Chapter 2 |\n", " | Feb 2 | Jigsaw for Processing | Java variables, functions, and loops | Lab3\n", "4 | Feb 7 | [Spirographics](Lectures/Study%20in%20Spirographics.ipynb) | Read Spirographics and Chapter 3 |\n", " | Feb 9 | | |\n", "5 | Feb 14 | [Animations](Lectures/Bouncing%20Ball%20to%20Angry%20Birds.ipynb) | Read Chapter 4 | Lab4\n", " | Feb 16 | [Vertexes, Shapes, and Rotation](Notes/Vertexes, Shapes, and Rotation.ipynb) | |\n", "6 | Feb 21 | [Visualizations 1](Lectures/Visualization.ipynb) | Read Chapter 5 | \n", " | Feb 23 | Review | Play Jeopardy! | Lab5\n", "7 | Feb 28 | Review for Exam 1 | |\n", " | Mar 2 | **Exam 1** | |\n", "8 | Mar 7 | **Spring break - No classes** ||\n", " | Mar 9 | **Spring break - No classes** ||\n", "9 | Mar 14 | [Object-Oriented Programming](Lectures/Object%20Oriented%20Programming.ipynb) | Read Chapter 6 | Lab6\n", " | Mar 16 | [State of Mind](Lectures/State%20of%20Mind.ipynb) | |\n", "10 | Mar 21 | [Java, Arrays, and Sorting](Lectures/JavaArraysAndSorting.ipynb) | Read Ch. 6 on OOP, Ch. 5 (p. 150 - 155) on Arrays; Ch 7. (p. 250 - 255) on Sorting |\n", " | Mar 23 | [Robot Control](Lectures/Robot%20Control.ipynb) | Chapter 6, Inheritance: Is-a | Lab7\n", "11 | Mar 28 | [Divide and Conquer](https://athena.brynmawr.edu/jupyter/hub/dblank/public/CS110%20Intro%20to%20Computing/2015-Fall/Notes/Divide%20and%20Conquer%20Strategies.slides.html#/1) | 20 Questions | Classroom exercise\n", " | Mar 30 | [Sorting](Notes/Sorting.ipynb) and [Evolution]() | Ch. 7 Sorting (again) |\n", "12 | Apr 4 | [Image Processing](Lectures/Photoshop-like%20Functions.ipynb) | Read Chapter 9 | Lab8\n", " | Apr 6 | Sorting | Read Chapter 10 | \n", "13 | Apr 11 | [Image Functions](Notes/Image%20Functions.ipynb) | Read Chapter 8 |\n", " | Apr 13 | Computer Science ||\n", "14 | Apr 18 | Computer Science | [Laura's Foot](Notes/Laura's%20Foot.ipynb) |\n", " | Apr 20 | Computer Science | [Sea Creatures](Notes/Sea%20Creatures.ipynb) [Recursion](Notes/Recursion.ipynb) |\n", "15 | Apr 25 | [Live code review](Notes/Dec8.ipynb) | Review OOP, translate/rotate, arrays |\n", " | Apr 27 | Review | [Mathematical Functions](Notes/Mathematical%20Functions.ipynb) | " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Important Dates\n", "\n", "* MLK, Jr. Day - Mon, Jan 16\n", "* Dorms open - Fri, Jan 13 (noon)\n", "* classes begin - Tue, Jan 17\n", "* spring vacation - Fri, Mar 3 - Sun March 12\n", "* last day of classes - Fri, Apr 28\n", "* review period - Sat, Apr 29\n", "* exam period - Sun, Apr 30 - Mon, May 1\n", "* last day (senior exams) - Sat, May 6" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Text and Software\n", "\n", "_Processing: Creative Coding & Generative Art in Processing 2_ by Ira Greenberg, Dianna Xu, Deepak Kumar, Friends of ed, 2013. Available at the Campus Bookstore. Also at amazon for \\$40.94 \n", "A Kindle eBook is available for those comfortable learning from an eBook (Amazon price is \\$20.00). The Bryn Mawr Bookstore price is $44.99.\n", "\n", "Processing Software (This software is already installed in the Computer Science Lab). The software is also available for your own computer from Processing web site (http://www.processing.org). Download the latest stable 2.X version for your own computer/Operating System.\n", "\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Course Policies\n", "\n", "## Participation\n", "\n", "Attendance and active participation are expected in every class. Participation includes asking questions, contributing answers, proposing ideas, and providing constructive comments.\n", "\n", "As you will discover, we are proponents of two-way communication and we welcome feedback during the semester about the course. We are available to answer student questions, listen to concerns, and talk about any course-related topic (or otherwise!). Come to office hours! This helps us get to know you. You are welcome to stop by and chat. There are many more exciting topics to talk about that we won't have time to cover in-class.\n", "\n", "Although computer science work can be intense, please stay in touch with us, particularly if you feel stuck on a topic or project and can't figure out how to proceed. Often a quick e-mail, phone call or face-to-face conference can reveal solutions to problems and generate renewed creative and scholarly energy. It is essential that you begin assignments early, since we will be covering a variety of challenging topics in this course." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Grading\n", "\n", "There will be about seven assignments, weighted equally in the final grading. Assignments must be submitted according to the Assignment Submission instructions. You should pay careful attention to the Code Formatting Standards and Grading Policy when doing your assignments. The grading structure for individual assignments is broken down in the Grading Policy.\n", "\n", "At the end of the semester, final grades will be calculated as a weighted average of all grades according to the following weights:\n", "\n", "Item | Percentage\n", "----- | ---------\n", "Exam 1 | 20%\n", "Exam 2 | 25%\n", "Assignments| 45% \n", "Project | 10%\n", "Total | 100%\n", "\n", "Incomplete grades will be given only for verifiable medical illness or other such dire circumstances.\n", "\n", "### Assignments\n", "\n", "To receive the assignments, you will need to do the following once:\n", "\n", "Open a notebook, and paste the following into a cell and execute it:\n", "\n", "```python\n", "%%file ~/nbgrader_config.py\n", "c = get_config()\n", "c.NbGrader.course_id = \"cs110\"\n", "c.TransferApp.exchange_directory = \"/opt/nbgrader/exchange/\"\n", "```\n", "\n", "In the next cell, execute the following:\n", "\n", "```\n", "!nbgrader extension activate\n", "```" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Submission and Late Policy\n", "\n", "All work must be turned in either in hard-copy or electronic submission, depending on the instructions given in the assignment. E-mail submissions, when permitted, should request a \"delivery receipt\" to document time and date of submission. Extensions will be given only in the case of verifiable medical excuses or other such dire circumstances, if requested in advance and supported by your Academic Dean.\n", "\n", "**No assignment will be accepted after it is past due.**\n", "\n", "**No past work can be \"made up\" after it is due.**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exams\n", "\n", "There will be two exams in this course. The exams will be closed-book and closed-notes. The exams will cover material from lectures, homeworks, and assigned readings (including topics not discussed in class)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Study Groups\n", "\n", "We encourage you to discuss the material and work together to understand it. Here are our thoughts on collaborating with other students:\n", "\n", "* The readings and lecture topics are group work. Please discuss the readings and associated topics with each other. Work together to understand the material. We highly recommend forming a reading group to discuss the material -- we will explore many ideas and it helps to have multiple people working together to understand them.\n", "* It is fine to discuss the topics covered in the homeworks, to discuss approaches to problems, and to sketch out general solutions. However, you MUST write up the homework answers, solutions, and programs individually without sharing specific solutions, mathematical results, program code, etc. If you made any notes or worked out something on a white board with another person while you were discussing the homework, you shouldn't use those notes while writing up your answer.\n", "* You should not show your code to other students before it is submitted. After it has been submitted, we will share and demonstrate code.\n", "* You may discuss high-level code ideas with others.\n", "\n", "If you have any questions as to what types of collaborations are allowed, please feel free to ask." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Reference Links\n", "\n", "* On line reference: http://processingjs.org/reference/\n", "* Grades: http://moodle.brynmawr.edu/\n", "* Jupyter: https://athena.brynmawr.edu/jupyter\n", "* Color wheel: http://www.rapidtables.com/web/color/RGB_Color.htm\n", "* [Rag Dolls and Tapestries](Notes/Rag%20Dolls%20and%20Tapestries.ipynb)" ] } ], "metadata": { "kernelspec": { "display_name": "Calysto Processing", "language": "java", "name": "calysto_processing" }, "language_info": { "codemirror_mode": { "name": "text/x-java", "version": 2 }, "file_extension": ".java", "mimetype": "text/x-java", "name": "java" } }, "nbformat": 4, "nbformat_minor": 0 }